package com.ruoyi.data.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;
import java.util.List;

/**
 * 订单信息对象 data_sale
 *
 * @author zzp
 * @date 2022-10-03
 */
public class DataSale extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Long id;

    /**
     * 单据编号
     */
    @Excel(name = "单据编号")
    private String billNumber;

    /**
     * 部门ID
     */
    @Excel(name = "部门ID")
    private Long deptId;

    /**
     * 用户ID
     */
    @Excel(name = "用户ID")
    private Long userId;

    /**
     * 用户姓名
     */
    @Excel(name = "用户姓名")
    private String nickName;

    /**
     * 用户电话
     */
    @Excel(name = "用户电话")
    private String phonenumber;

    /**
     * 报货人ID
     */
    @Excel(name = "报货人ID")
    private Long stockUserId;

    /**
     * 报货人
     */
    @Excel(name = "报货人")
    private String stockNickName;

    /**
     * 总金豆
     */
    @Excel(name = "总金豆")
    private Integer allGold;

    /**
     * 增加名额
     */
    @Excel(name = "增加名额")
    private Integer addUser;

    /**
     * 总数量
     */
    @Excel(name = "总数量")
    private Integer allAmount;

    /**
     * 兑换比例
     */
    private Integer goldScale;

    /**
     * 审核状态
     */
    @Excel(name = "审核状态", readConverterExp = "Y=已审核,N=未审核")
    private String examStatus;

    /**
     * 审核人ID
     */
    private Long examBy;

    /**
     * 审核人姓名
     */
    @Excel(name = "审核人姓名")
    private String examName;

    /**
     * 审核时间
     */
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date examTime;

    /**
     * 订单明细信息
     */
    private List<DataSaleItem> dataSaleItemList;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setBillNumber(String billNumber) {
        this.billNumber = billNumber;
    }

    public String getBillNumber() {
        return billNumber;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public String getNickName() {
        return nickName;
    }

    public String getPhonenumber() {
        return phonenumber;
    }

    public void setPhonenumber(String phonenumber) {
        this.phonenumber = phonenumber;
    }

    public Long getStockUserId() {
        return stockUserId;
    }

    public void setStockUserId(Long stockUserId) {
        this.stockUserId = stockUserId;
    }

    public String getStockNickName() {
        return stockNickName;
    }

    public void setStockNickName(String stockNickName) {
        this.stockNickName = stockNickName;
    }

    public void setAllGold(Integer allGold) {
        this.allGold = allGold;
    }

    public Integer getAllGold() {
        return allGold;
    }

    public void setAddUser(Integer addUser) {
        this.addUser = addUser;
    }

    public Integer getAddUser() {
        return addUser;
    }

    public void setAllAmount(Integer allAmount) {
        this.allAmount = allAmount;
    }

    public Integer getAllAmount() {
        return allAmount;
    }

    public Integer getGoldScale() {
        return goldScale;
    }

    public void setGoldScale(Integer goldScale) {
        this.goldScale = goldScale;
    }

    public String getExamStatus() {
        return examStatus;
    }

    public void setExamStatus(String examStatus) {
        this.examStatus = examStatus;
    }

    public Long getExamBy() {
        return examBy;
    }

    public void setExamBy(Long examBy) {
        this.examBy = examBy;
    }

    public String getExamName() {
        return examName;
    }

    public void setExamName(String examName) {
        this.examName = examName;
    }

    public List<DataSaleItem> getDataSaleItemList() {
        return dataSaleItemList;
    }

    public Date getExamTime() {
        return examTime;
    }

    public void setExamTime(Date examTime) {
        this.examTime = examTime;
    }

    public void setDataSaleItemList(List<DataSaleItem> dataSaleItemList) {
        this.dataSaleItemList = dataSaleItemList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("billNumber", getBillNumber())
                .append("deptId", getDeptId())
                .append("userId", getUserId())
                .append("nickName", getNickName())
                .append("allGold", getAllGold())
                .append("addUser", getAddUser())
                .append("allAmount", getAllAmount())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .append("dataSaleItemList", getDataSaleItemList())
                .toString();
    }
}
